package cn.iocoder.an.module.mold.controller.admin.account.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.an.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.an.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 模具台账分页 Request VO")
@Data
public class AccountPageReqVO extends PageParam {



    @Schema(description = "模具名", example = "李四")
    private String name;

    @Schema(description = "编码")
    private String code;

    @Schema(description = "图号id", example = "6468")
    private Long drawingNoId;

    @Schema(description = "部门Id", example = "30795")
    private Long deptId;

    @Schema(description = "设备Id", example = "15975")
    private Long devId;

    @Schema(description = "总腔数")
    private Integer totalCavity;

    @Schema(description = "可用腔数")
    private Integer availableCavity;

    @Schema(description = "寿命", example = "23601")
    private Integer totalUsageCount;

    @Schema(description = "已使用", example = "26291")
    private Integer usedCount;

    @Schema(description = "预警次数", example = "24442")
    private Integer warningCount;

    @Schema(description = "延期次数", example = "31322")
    private Integer delayCount;


    @Schema(description = "仓库Id", example = "5197")
    private Long warehouseId;

    @Schema(description = "储位id", example = "10558")
    private Long storageId;

    @Schema(description = "bom类型", example = "22650")
    private String bomCategoryId;

    @Schema(description = "工步")
    private Integer oprationStep;

    @Schema(description = "数量")
    private Integer quantity;

    @Schema(description = "保养类型id", example = "16858")
    private Long upkeepId;

    @Schema(description = "上次保养日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] lastUpkeepTime;

    @Schema(description = "下次保养日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] nextUpkeepTime;

    @Schema(description = "保养人id", example = "2384")
    private Long upkeeperId;

/*    @Schema(description = "保养日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] upkeepTime;*/

    @Schema(description = "复检类型id", example = "16858")
    private Long recheckId;

    @Schema(description = "上次复检日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] lastRecheckTime;

    @Schema(description = "下次复检日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] nextRecheckTime;

    @Schema(description = "复检人id", example = "11260")
    private Long recheckerId;

/*    @Schema(description = "复检日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] recheckTime;*/

    @Schema(description = "领用人ID", example = "11159")
    private Long borrowerId;

    @Schema(description = "领用时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] borrowTime;

    @Schema(description = "归还人ID", example = "20302")
    private Long returnerId;

    @Schema(description = "归还时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] returnTime;

    @Schema(description = "库存状态", example = "inventoryStatus")
    private Integer inventoryStatus;

    @Schema(description = "使用状态", example = "inventoryStatus")
    private Integer usageStatus;

    @Schema(description = "维修状态", example = "inventoryStatus")
    private Integer repairStatus;

    @Schema(description = "保养状态", example = "inventoryStatus")
    private Integer upkeepStatus;

    @Schema(description = "复检状态", example = "inventoryStatus")
    private Integer recheckStatus;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}